home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 6: Level 6 / 17 Bit - Level 6 (1998)(Epic Marketing)[!].iso / quartz / q0498.dms / q0498.adf / PGEN3 < prev    next >
Text File  |  1992-06-07  |  5KB  |  280 lines

  1. curdsk=1
  2. colour=1
  3. yyval=12
  4. skipdel=0
  5.  
  6. cpytitl:dc.b "Lockpick Fast Copier Request",0
  7. cpyques:dc.b "Do you need a copy of the original?",0
  8. copyrst:dc.b "Proceeding with Fast Copy of remaining disks...",0
  9.  
  10. frqtitl:dc.b "Move to destination path... ",0
  11. frqpath:ds.b 256,0
  12. frqpath2:ds.b 256,0
  13. frqpath1:ds.b 256,0
  14. frqpath0:ds.b 256,0
  15. frqname:ds.b 32,0
  16.  
  17. nxtdskm:dc.b "Copy disk "
  18. dskm1:    dc.b "00 of "
  19. dskm2:    dc.b "00?",0
  20. slash:    dc.b "/",0
  21. diskdf1:dc.b "DF",0
  22. diskdf2:dc.b "df",0
  23. num00:    dc.b "0"
  24. num03:    dc.b "3"
  25.  
  26. cmp hdonly,0,2,goto dofreq
  27. docopy=simplereq(cpytitl,cpyques)
  28. cmp docopy,0,0,goto dofreq
  29.  
  30. connect=drives()
  31. cmp connect,-1,0,goto byebye
  32. poke(drname+2,connect+48)
  33. poke(remdsk+19,connect+48)
  34. poke(insdsk2+6,connect+48)
  35.  
  36. drivenum=fcopy(connect,0)
  37. cmp drivenum,0,-1,goto byebye
  38. goto fixdev
  39.  
  40. dofreq:    freturn=freq(frqtitl,frqpath,frqname,1)
  41. cmp freturn,0,0,goto byebye
  42. strcpy(frqpath2,frqpath)
  43. strcpy(frqpath0,frqpath)
  44.  
  45. fixdev:    pathlen=strlen(frqpath)
  46.     cmp pathlen,0,0,goto cpynam
  47.  
  48.     pathlen=pathlen+frqpath-1
  49.     terminator=^pathlen>24
  50.     cmp terminator,58,0,goto cpynam1
  51.     cmp terminator,47,0,goto cpynam1
  52.     
  53.     strcat(frqpath,slash)
  54.     strcat(frqpath2,slash)
  55.     strcat(frqpath0,slash)
  56.  
  57. cpynam1:strcat(frqpath,fname)
  58.     strcat(frqpath2,fname2)
  59.     goto chkdf
  60.  
  61. cpynam:    strcat(frqpath,drname)
  62.     memcpy(frqpath2,drname,4)
  63.     poke(frqpath2+4,0)    
  64.     strcpy(frqpath0,frqpath2)
  65.     strcat(frqpath2,fname2)
  66.  
  67. chkdf:    sc=memcmp(frqpath,diskdf1,2)
  68.     cmp sc,0,0,goto fixxx
  69.     sc=memcmp(frqpath,diskdf2,2)
  70.     cmp sc,0,2,goto start
  71.  
  72. fixxx:    sc=memcmp(frqpath+2,num00,1)
  73.     cmp sc,0,-1,goto start
  74.     sc=memcmp(frqpath+2,num03,1)
  75.     cmp sc,0,1,goto start
  76.  
  77.     drivenum=frqpath+2
  78.     drivenum=^drivenum>24
  79.     poke(remdsk+19,drivenum)
  80.     poke(insdsk2+6,drivenum)
  81.     drivenum=drivenum-48
  82.     cmp docopy,0,2,goto frxfix
  83.     connect=drivenum<16+drivenum
  84. frxfix:    freturn=0
  85.  
  86. fnc:    dc.b "*** COULD NOT CREATE PATCHFILES! ***",0
  87. fnf1:    dc.b "File not found!",0
  88. pnf1:    dc.b "Protection not found!",0
  89. pnf2:    dc.b "*** PARAMETER FAILED! ***",0
  90. worktxt:dc.b "Working, please stand by...",0
  91. clickany:dc.b "Click in this window to exit...",0
  92.  
  93. prof:    dc.b "*** Parameter Successful! ***",0
  94. remdsk:    dc.b "Remove disk from DF0: then click in this window...",0
  95.  
  96. insdsk:    dc.b "Insert BACKUP of",0
  97. insdsk2:dc.b " in DF0: then click in this window...",0
  98.  
  99.     dc.w 0
  100. oritab:    dc.l orig1,fix1,orig2,fix2,orig3,fix3,orig4,fix4,orig5,fix5
  101.     dc.l 0,0
  102.  
  103. oritab2:dc.l origa1,fixa1,origa2,fixa2,origa3,fixa3,origa4,fixa4,origa5,fixa5
  104.     dc.l 0,0
  105.  
  106.  
  107. * Open Window and print intro text...
  108. start:    cmp ^winname,"con:",0,winname=winname+18
  109.     pokel(wtitle,winname)
  110.     gosub openwin
  111.  
  112.     cmp docopy,1,0,goto main
  113.     cmp freturn,-1,0,goto main
  114.  
  115.     gosub remm
  116.     txtptr=insdsk
  117.     gosub print3d
  118.     txtptr=dname
  119.     colour=3
  120.     gosub print3d
  121.     txtptr=insdsk2
  122.     colour=1
  123.     gosub print3d
  124.  
  125.     gosub waitsgn
  126.     cmp class,$200000,2,goto chkclow
  127.     cmp code,$1b,0,goto remprta
  128. chkclow:cmp class,$200,0,goto remprta
  129.     skipdel=1
  130.  
  131. main:    txtptr=worktxt
  132.     gosub print3d
  133.     cmp skipdel,0,2,goto begit
  134.     cmp freturn,-1,0,goto begit
  135.     delay(100)
  136.  
  137. begit:    strcpy(frqpath1,frqpath0)
  138.     strcat(frqpath1,create)
  139.     hand1=open(frqpath1,1006)
  140.     cmp hand1,0,0,goto errcant
  141.     write(hand1,cresta,creend-cresta)
  142.     close(hand1)
  143.  
  144.     strcpy(frqpath1,frqpath0)
  145.     strcat(frqpath1,create2)
  146.     hand1=open(frqpath1,1006)
  147.     cmp hand1,0,0,goto errcant
  148.     write(hand1,cresta2,creend2-cresta2)
  149.     close(hand1)
  150.  
  151.     pos=0
  152.     pointer=oritab
  153.  
  154. looper:    orig=^pointer
  155.     pointer=pointer+4
  156.     fix=^pointer
  157.     pointer=pointer+4
  158.     pval=^pointer
  159.     cmp pval,0,0,top=garbage
  160.     cmp pval,0,2,top=pval
  161.  
  162. * Scan file for our string and replace if found...
  163.     pos=fscan(frqpath,orig,fix-orig,fix,top-fix,pos)
  164.     cmp pos,-1,0,goto errpnf
  165.     cmp pos,-2,0,goto errfnf
  166.     cmp pval,0,2,goto looper
  167.  
  168. begit2:    pos=0
  169.     pointer=oritab2
  170.  
  171. looper2:orig=^pointer
  172.     pointer=pointer+4
  173.     fix=^pointer
  174.     pointer=pointer+4
  175.     pval=^pointer
  176.     cmp pval,0,0,top=garbage2
  177.     cmp pval,0,2,top=pval
  178.  
  179.     pos=fscan(frqpath2,orig,fix-orig,fix,top-fix,pos)
  180.     cmp pos,-1,0,goto errpnf
  181.     cmp pos,-2,0,goto errfnf
  182.     cmp pval,0,2,goto looper2
  183.  
  184. itsok:    txtptr=prof
  185.     gosub print3d
  186.  
  187.     delay(100)
  188.     cmp note1,0,0,goto ky1
  189.     colour=3
  190.     txtptr=note1
  191.     gosub print3d
  192.     cmp note2,0,0,goto ky1
  193.     txtptr=note2
  194.     gosub print3d
  195.     cmp note3,0,0,goto ky1
  196.     txtptr=note3
  197.     gosub print3d
  198.  
  199. ky1:    cmp freturn,0,0,goto ky1a
  200.  
  201. ky1x:    txtptr=clickany
  202.     gosub print3d
  203.     goto keyout
  204.  
  205. ky1a:    colour=1
  206.     yyval=yyval+10
  207.     txtptr=remdsk
  208.     gosub print3d
  209. ky2:    gosub remm
  210.     gosub waitsgn
  211.     cmp mess,0,0,goto ky2
  212.  
  213.     cmp numdsk,2,-1,goto bye0
  214.     yyval=yyval+10
  215.     txtptr=copyrst
  216.     gosub print3d
  217.     delay(50)
  218.  
  219. ky3:    curdsk=curdsk+1
  220.     cmp curdsk,numdsk,1,goto bye0
  221.     
  222.     tensv=curdsk/10&$ffff
  223.     onesv=tensv*10
  224.     onesv=curdsk-onesv
  225.     poke(dskm1,tensv+48)
  226.     poke(dskm1+1,onesv+48)
  227.  
  228.     tensv=numdsk/10&$ffff
  229.     onesv=tensv*10
  230.     onesv=numdsk-onesv
  231.     poke(dskm2,tensv+48)
  232.     poke(dskm2+1,onesv+48)
  233.  
  234.     docopy=simplereq(cpytitl,nxtdskm)
  235.     cmp docopy,1,-1,goto bye0
  236.     drivenum=fcopy(connect,-1)
  237.     cmp drivenum,0,-1,goto bye0
  238.     goto ky3
  239.  
  240. keyout:    gosub remm
  241.     gosub waitsgn
  242.     cmp mess,0,0,goto keyout
  243. bye0:    gosub closwin
  244. byebye:    end
  245.  
  246. errpnf:    cmp freturn,0,0,goto failx
  247.     txtptr=pnf1
  248.     gosub print3d
  249.     goto prii5a
  250.  
  251. errcant:txtptr=fnc
  252.     gosub print3d
  253.     goto prii5a
  254.  
  255. remprt:    delay(150)
  256.     cmp freturn,-1,0,goto bye0
  257. remprta:yyval=yyval+10
  258.     txtptr=remdsk
  259.     gosub print3d
  260.     goto keyout
  261.  
  262. errfnf:    txtptr=fnf1
  263.     gosub print3d
  264.     goto prii5a
  265.  
  266. prii5a:    txtptr=pnf2
  267.     gosub print3d
  268.     goto remprt
  269.  
  270. failx:    txtptr=pnf1
  271.     gosub print3d
  272.     txtptr=pnf2
  273.     gosub print3d
  274.     goto ky1x
  275.  
  276.  
  277. #i "Params:WINHAND"
  278.  
  279.  
  280.